$(document).ready(function() {
    document.getElementById('page_center').scrollIntoView();
    ir_para_valor();
    
    $('input:radio').change(
        function(){
            ir_para_valor();
        }
    );
    
    $('input:radio[name=recebido]').change(
        function(){
            checar_decisao();
        }
    );
    
    $( "#datepicker" ).datepicker({ dateFormat: 'dd/mm/yy'});
    checar_decisao();
});

function checar_decisao() {
	if ($('input:radio[name=recebido]:checked').val() == 0) {
		// mostra campo data
		$('input:text[name=data]').show("slide", {direction: "right"}, "slow", function() {
			$('#datepicker').focus();
		});
	} else {
		// esconde campo data
		$('input:text[name=data]').hide("slide", {direction: "right"}, "slow");
	}
}

function checar_ambos() {
	return checar_cheque() && checar_crediario();
}

function checar_cheque() {
	if ($(':input').length != 0) {
		
		var valor = $("input[name=cheque]").val();
        var vencimento = $("input[name=data]").val();
        
        regex = /^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$/
        
        if (vencimento != "" && !regex.test(vencimento) ) {
            valor_incorreto("Configure todos os parâmetros corretamente.", 2500);
            return false;
        } else {
            // Tá tudo ok. Vamos gerar as parcelas
            
            var pedido_id = $("input[name=pedido_id]").val();
            var cliente_id = $("input[name=cliente_id]").val();
            var recebido = $('input:radio[name=recebido]:checked').val();
            var csrf_token = getCookie('csrftoken');
            
            $.ajax(
                {
                    type: "POST",
                    url: "/financeiro/cheque/",
                    data: {
                        pedido_id: pedido_id,
                        cliente_id: cliente_id,
                        vencimento: vencimento,
                        valor_total: valor,
                        recebido: recebido,
                        csrfmiddlewaretoken: csrf_token
                    },
                    async: false,
                    success: function(retorno) {
                        if (retorno.saida) {
                            valor_incorreto("Cheque(s) gravado(s).", 2500);
                        }
                    },
                    statusCode: {
                        404: function() {
                            alert('Pagina não encontrada');
                            return false;
                        },
                        408: function() {
                            alert('Não responde');
                            return false;
                        }
                    }
                }
            );
            //alert(this);
            return true;
        }
		
	} else {
		// alert('Não há cheque');
        return true;		
	}
	return false;
}

function checar_crediario() {
    if ($(':input').length != 0) {
        
        var valor = $("input[name=crediario]").val();
        var parcelas = $("select[name=parcelas]").val();
        var vencimento = $("select[name=vencimento]").val();
        
        if (valor == 0 || parcelas == 0 || vencimento == 0) {
            valor_incorreto("Configure todos os parâmetros corretamente.", 2500);
            return false;
        } else {
            // Tá tudo ok. Vamos gerar as parcelas
            
            var pedido_id = $("input[name=pedido_id]").val();
            var cliente_id = $("input[name=cliente_id]").val();
            var csrf_token = getCookie('csrftoken');
            
            $.ajax(
                {
                    type: "POST",
                    url: "/financeiro/parcelar/",
                    data: {
                        pedido_id: pedido_id,
                        cliente_id: cliente_id,
                        parcelas: parcelas,
                        vencimento: vencimento,
                        valor_total: valor,
                        
                        csrfmiddlewaretoken: csrf_token
                    },
                    async: false,
                    success: function(retorno) {
                        if (retorno.saida) {
                            valor_incorreto("Parcelamento criado.", 2500);
                        }
                    },
                    statusCode: {
                        404: function() {
                            alert('Pagina não encontrada');
                            return false;
                        },
                        408: function() {
                            alert('Não responde');
                            return false;
                        }
                    }
                }
            );
            //alert(this);
            return true;
        }
    } else {
        // alert('Não há parcelamento');
        return true;
    }
}

function ir_para_valor() {
    $('form input[name="valor"]').focus();
    $('form input[name="valor"]').select();
}

function valor_incorreto(mensagem, delay) {
    $("#valor_incorreto").text(mensagem);
    $("#valor_incorreto").stop(false, true).fadeIn("slow", function() {
        ir_para_valor();
        $(this).delay(delay).slideUp("slow", function() {
            $(this).text('');
        });
    });
}

function checar_valor() {
    var valor = $("input[name=valor]").val();
    
    //regex = /(^([1-9]+\d*([.,]\d{1,3})?)|(^(0?[.,]\d{1,3})))$/;
    regex = /^\d+([,.]\d{2})?$/;
    
    if (!regex.test(valor) || valor <= 0) {
        $("#valor_incorreto").text('Valor incorreto. Forneça um valor real');
        $("#valor_incorreto").stop(true).fadeIn("slow", function() {
            ir_para_valor();
            $(this).delay(2500).slideUp("slow", function() {
                $(this).text('');
            });
        });
        return false;
    } else {
        $("#valor_incorreto").text('');
        return true
    }
    
}
